# import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt

# datas = pd.read_excel(r'datas\linear_regression.xlsx') # 读取 excel 数据，引号里面是 excel 文件的位置
y = [3,5,7]#datas.iloc[:, 0] # 因变量为第 1列数据
x0 = [1,2,3]#datas.iloc[:, 1] # 自变量为第 2 列数据
x = sm.add_constant(x0) # 若模型中有截距，必须有这一步
model = sm.OLS(y, x, hasconst=1 ) # 构建最小二乘模型并拟合
results = model.fit()
print(results.summary()) # 输出回归结果

# 画图
# 这行代码使得 pyplot 画出的图形中可以显示中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # mac 系统下字体: 黑体 'Heiti SC'， 宋体：'Songti SC'

predicts = results.predict() # 模型的预测值
# x = datas.iloc[:, 1] # 自变量为第 3 列数据
plt.scatter(x0, y, label='实际值') # 散点图
plt.plot(x0, predicts, color = 'red', label='预测值')
plt.legend() # 显示图例，即每条线对应 label 中的内容
plt.show() # 显示图形
